import Vue from 'vue'
import moment from  'moment'
Vue.filter("money", function(value) {   //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
    if(/^d*(?:.d{0,2})?$/.test(value)){
        return (value*1).toFixed(2);
    }else{
        if(value || value==0){
            return (value*1).toFixed(2);
        }else{
            return '0.00';
        }
    }
});
Vue.filter("moneyFor", function(value, len) {   //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
    if(/^d*(?:.d{0,2})?$/.test(value)){
        return (value*1).toFixed(len);
    }else{
        if(value || value==0){
            return (value*1).toFixed(len);
        }else{
            var zero = new Array(len+1).join("0");
            return '0.'+zero;
        }
    }
});
Vue.filter("integer", function(value) {   //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
    if(value){
        return value*1;
    }else{
        return 0;
    }
});
Vue.filter("dataformat",function(value,type){
    if(moment(value).format(type)!='Invalid date'){
        return moment(value).format(type)
    }
});
Vue.filter("softName", function(price){
    return window.softName
});


/**
 * 快速截取日期并展示
 * @param value 给定日期
 * @param showLength 显示多少位日期(默认返回19位长度)
 *   2-返回[dd]
 *   4-返回[yyyy]
 *   7-返回[yyyy-MM]
 *   7.1-返回[yyyy/MM]
 *   10-返回[yyyy-MM-DD]
 *   16-返回[yyyy-MM-DD HH:mm]
 *   19-返回[yyyy-MM-DD HH:mm:ss]
 * @author mafeiyue
 * @date 2018-07-24
 */
Vue.filter('dateShow', function (value, showLength) {
    if (!value) { return '' }
    if (!showLength) { showLength = 19 }
    var formatString = 'YYYY-MM-DD HH:MM:SS'
    switch (showLength) {
        case 2:
            formatString = 'DD'
            return moment(value).format(formatString)
        case 4:
            formatString = 'YYYY'
            return moment(value).format(formatString)
        case 7:
            formatString = 'YYYY-MM'
            return moment(value).format(formatString)
        case 7.1:
            formatString = 'YYYY/MM'
            return moment(value).format(formatString)
        case 10:
            formatString = 'YYYY-MM-DD'
            return moment(value).format(formatString)
        case 16:
            formatString = 'YYYY-MM-DD HH:MM'
            return moment(value).format(formatString)
        case 19:
            formatString = 'YYYY-MM-DD HH:MM:SS'
            return moment(value).format(formatString)
    }
    return moment(value).format(formatString)
});


/**
 * 保留N位小数
 * @param value 被处理的数据
 * @param saveDocLength 保留N位有效小数(按四舍五入处理)
 * @param failDefValue 给定的被处理数据不是数字, 按此默认值返回
 * @author mafeiyue
 * @date 2018-07-24
 */
Vue.filter('saveDoc', function (value, saveDocLength, failDefValue) {
    var max = Number.MAX_VALUE;
    if (!saveDocLength) { saveDocLength = 2 }
    if (/^([+-])?[0-9]+(.[0-9]{1,})?$/.test(value)) { return (value*1).toFixed(saveDocLength) }
    if (failDefValue) { return failDefValue }
    return 0
});
